import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Leetcode160 {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        Set<ListNode> set = new HashSet<>();
        ListNode listNode = headA;

        while (listNode != null) {
            set.add(listNode);
            listNode = listNode.next;
        }

        ListNode listNodeB = headB;
        while (listNodeB != null) {
            if (set.contains(listNodeB)) {
                return listNodeB;
            }

            listNodeB = listNodeB.next;
        }

        return null;
    }
}
